//
//  BooksRootViewController.m
//  Books
//
//  Created by apple on 12-3-10.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "BooksRootViewController.h"

#import "BooksModelController.h"
#import "BookDetailsViewController.h"
#import "DataService.h"
@interface BooksRootViewController ()
@property (readonly, strong, nonatomic) BooksModelController *modelController;
@end

@implementation BooksRootViewController

@synthesize pageViewController = _pageViewController;
@synthesize modelController = _modelController;
 
- (void)viewDidLoad
{
    [super viewDidLoad];
	
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

-(void) viewWillAppear:(BOOL)animated
{
    
    [super viewWillAppear:animated];
    NSInteger pageIndex = [DataService GetBookPageIndex];
    // Do any additional setup after loading the view, typically from a nib.
    // Configure the page view controller and add it as a child view controller.
    self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
    self.pageViewController.delegate = self;

     id startingViewController = [self.modelController viewControllerAtIndex:pageIndex storyboard:self.storyboard];
    NSArray *viewControllers = [NSArray arrayWithObject:startingViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
    
    self.pageViewController.dataSource = self.modelController;
    
    [self addChildViewController:self.pageViewController];
    [self.view addSubview:self.pageViewController.view];
    
    // Set the page view controller's bounds using an inset rect so that self's view is visible around the edges of the pages.
    CGRect pageViewRect = self.view.bounds;
    self.pageViewController.view.frame = pageViewRect;
    
    [self.pageViewController didMoveToParentViewController:self];
    
    // Add the page view controller's gesture recognizers to the book view controller's view so that the gestures are started more easily.
    self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;
    
    //NSLog(@"%@",self.view.gestureRecognizers);
    for (UIViewController * contorller in self.navigationController.viewControllers) {
        if([contorller isKindOfClass:[BookDetailsViewController class]])
        {
        contorller.title=@"返回";
            break;
        }
        
         
    }
    //添加标题
    
    NSDictionary * dicBook= [[DataService DicBooksList] objectForKey:[DataService GetBookKey]];
    
    self.title =[dicBook objectForKey:Title];
    
}
/*
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}
*/
- (BooksModelController *)modelController
{
     // Return the model controller object, creating it if necessary.
     // In more complex implementations, the model controller may be passed to the view controller.
    if (!_modelController) {
        _modelController = [[BooksModelController alloc] init];
        _modelController.bookKey=[DataService GetBookKey];
    }

    return _modelController;
}
-(void) viewDidDisappear:(BOOL)animated
{
    [self viewDidUnload];
    
}
#pragma mark - UIPageViewController delegate methods

/*
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
    
}
 */

- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation
{
    // Set the spine position to "min" and the page view controller's view controllers array to contain just one view controller. Setting the spine position to 'UIPageViewControllerSpineLocationMid' in landscape orientation sets the doubleSided property to YES, so set it to NO here.
    UIViewController *currentViewController = [self.pageViewController.viewControllers objectAtIndex:0];
    NSArray *viewControllers = [NSArray arrayWithObject:currentViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

    self.pageViewController.doubleSided = NO;
    return UIPageViewControllerSpineLocationMin;
}
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
   // NSString * strFinished = finished?@"true":@"false";
  //  NSString * strCompleted = completed?@"true":@"false"; 
 
    
  //  NSLog(@"finist=%@,completed=%@,viewcount=%i",strFinished,strCompleted,pageViewController.viewControllers.count);
}
@end
